package com.xy.biz.mc.domain.bo;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.Objects;

/**
 * 
 * 
 * @author zsp
 * @date 2021-2-25
 */
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class MessageBO {
	
	/**
	 * 消息Id
	 */
	private Long messageId;
	/**
	 * 发送方Id，用户Id或者用户分组Id
	 */
	private Long fromId;
	/**
	 * 发送方类型：0-用户，1-用户分组
	 */
	private Integer fromType;
	/**
	 * 接收方Id，用户Id或者用户分组Id
	 */
	private Long toId;
	/**
	 * 接收方类型：0-用户，1-用户分组
	 */
	private Integer toType;
	/**
	 * 是否是离线消息：0-否，1-是
	 */
	private Boolean offlineFlag;
	/**
	 * 失效时间
	 */
	private LocalDateTime expiredTime;
	/**
	 * 发送时间
	 */
	private LocalDateTime sendTime;
	/**
	 * 状态：0-初始，1-发送成功，2-发送失败，3-已确认
	 */
	private Integer status;
	/**
	 * 数据类型
	 */
	private Integer dataType;
	/**
	 * 租户Id，0表示不指定
	 */
	private Long tenantId;
	/**
	 * 创建时间
	 */
	private LocalDateTime createTime;
	/**
	 * 更新时间
	 */
	private LocalDateTime updateTime;

	/**
	 * 数据
	 */
	private byte[] data;


	/// methods

	/**
	 * 是否是离线消息
	 *
	 * @return
	 */
	public boolean isOffline() {
		return Objects.equals(offlineFlag, true);
	}

}
